Increasingly enterprises and individuals expect to have access to information twenty-four hours a day, seven days a week, and three-hundred sixty-five days a year. Additionally, since the world economy has become highly networked, the location of the information desired by users has become largely irrelevant.
Many techniques are deployed by enterprises to ensure that their data is available when requested, when failures occur, or when recovery of specific versions of their data is needed. One such technique employs data replication or mirroring; such that the data is available from multiple independent data sources should some type of failure occur. Another technique permits data to have multiple versions, such that the data along with its versions are archived and acquired from a separate storage area on demand.
Furthermore, the security of data has also become a significant concern for enterprises. Thus, replicated data, archived data, and versioned data are often encrypted. A variety of techniques exists for encrypting data in blocks on a storage volume and securely delivering decrypted versions of the blocks as needed.
Each of the available techniques for securely encrypting and decrypting blocks of data has their own advantages and disadvantages. However, they all appear to suffer from one major drawback and that is when a block is added or removed, then all the blocks from those that were inserted or deleted have to be resynchronized when remote resynchronization tools are used or when file difference generating algorithms are used, since all those blocks are changed. This is a costly operation in terms of memory and processing.
Therefore, improved techniques for synchronizing and archive-versioning encrypted files are desirable.